import type { OptionsProps, PicLink, TextProps } from '@/types';
import { isPicTitleDescStatusArr, isStringArray } from '@/types';

export function setTextStatus(textProps: TextProps, text: string) {
  // text可能是标题、描述、颜色
  textProps.status = text;
}

export function addOption(optionsProps: OptionsProps) {
  if (isStringArray(optionsProps.status)) {
    const lastOption = optionsProps.status[optionsProps.status.length - 1];
    const lastDigit = lastOption.split('').reverse()[0];
    // 有可能最后一项拿到的不是数字
    // 比如性别预设值：男、女、保密，这时候就需要手动判断
    if (!isNaN(Number(lastDigit))) {
      optionsProps.status.push(`新增选项${Number(lastDigit) + 1}`);
    } else {
      optionsProps.status.push(`新增选项1`);
    }
  } else if (isPicTitleDescStatusArr(optionsProps.status)) {
    const lastOption = optionsProps.status[optionsProps.status.length - 1];
    const lastDigit = lastOption.picTitle.split('').reverse()[0];
    if (!isNaN(Number(lastDigit))) {
      optionsProps.status.push({
        value: '',
        picTitle: `新增图片标题${Number(lastDigit) + 1}`,
        picDesc: `图片描述（选填，限30字）`,
      });
    } else {
      optionsProps.status.push({
        value: '',
        picTitle: `新增图片标题1`,
        picDesc: `图片描述（选填，限30字）`,
      });
    }
  }
}

export function removeOption(optionsProps: OptionsProps, index: number) {
  if (optionsProps.status.length === 2) return false;
  optionsProps.status.splice(index, 1);
  return true;
}

export function setOption(optionsProps: OptionsProps, option: number) {
  // option可能是位置、字体大小、字体斜体、字体加粗
  optionsProps.currentStatus = option;
}

export function setPicLinkByIndex(optionsProps: OptionsProps, picLink: PicLink) {
  if (isPicTitleDescStatusArr(optionsProps.status)) {
    optionsProps.status[picLink.index].value = picLink.link;
  }
}

export function setIsUse(optionsProps: OptionsProps, flag: boolean) {
  optionsProps.isUse = flag;
}
export function setRateScoreText(
  optionsProps: OptionsProps,
  object: { val: string; index: number },
) {
  optionsProps.status[object.index] = object.val;
}
